﻿namespace Infrastructure.Model.DI
{
    /// <summary>
    /// 服务自动注册特性
    /// </summary>
    /// <修改说明>
    /// 1. 添加 AttributeUsage 明确使用目标
    /// 2. 设置 Inherited = false 防止继承
    /// </修改说明>
    /// <summary>
    /// 用于标记应用服务的自定义特性类，包含服务生命周期、服务类型和接口服务类型的信息。
    /// </summary>
    public class AppServiceAttribute : System.Attribute
    {
        /// <summary>
        /// 获取或设置服务的生命周期（默认值为 Scoped）。
        /// </summary>
        public LifeTime ServiceLifetime { get; set; } = LifeTime.Scoped;

        /// <summary>
        /// 获取或设置服务的类型。
        /// </summary>
        public Type ServiceType { get; set; }

        /// <summary>
        /// 获取或设置是否为接口服务类型。
        /// </summary>
        public bool InterfaceServiceType { get; set; }
    }
}
